package com.mycompany.crm.dao;

import com.mycompany.crm.base.BaseMapper;
import com.mycompany.crm.model.TreeModel;
import com.mycompany.crm.vo.Module;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ModuleMapper extends BaseMapper<Module,Integer> {

    /**
     * 查询所有的资源列表(只查3列数据)
     * @return
     */
    List<TreeModel> queryAllModules();

    /**
     * 查询所有的资源数据
     * @return
     */
    List<Module> queryModuleList();

    /**
     * 通过层级与模块名查询资源对象
     * @param grade
     * @param moduleName
     * @return
     */
    Module queryModuleByGradeAndModuleName(@Param("grade") Integer grade,@Param("moduleName") String moduleName);

    /**
     * 通过层级与URL查询资源对象
     * @param grade
     * @param url
     * @return
     */
    Module queryModuleByGradeAndUrl(@Param("grade") Integer grade,@Param("url") String url);


    /**
     * 通过权限码查询资源对象
     * @param optValue
     * @return
     */
    Module queryModuleByOptValue(String optValue);

    /**
     * 查询该资源下子资源的数量
     * @param id
     * @return
     */
    Integer queryModuleByParentId(Integer id);
}